Question: I have a string in my `string.xml`:

```
<string name="date_time_short">%2$d.%2$d. %1$s %2$d:%2$d</string>

```

Now i want to set the values from code:

```
String.format(context.getResources().getString(R.string.date_time_short), day, month, at, hour, minute);

```

But i get the error:

```
Wrong argument count, format string date_time_short requires 2 but format call supplies 5

```

So it seems to has a problem with `%1$s` which represents a string. At least this is written in the documentation [here](http://developer.android.com/intl/ko/guide/topics/resources/string-resource.html#FormattingAndStyling)

> 
> If you need to format your strings using String.format(String, Object...), then you can do so by putting your format arguments in the string resource. For example, with the following resource:
> 
> 
> 

```
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

```

> 
> In this example, the format string has two arguments: %1$s is a string and %2$d is a decimal number. You can format the string with arguments from your application like this:
> 
> 
> 

```
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);

```

So why am i getting this error?

Answer: 
The number in %1$s for example indicates the index in your Object... argument. So in your example, the correct definition of the string would be :

```
<string name="date_time_short">%1$d.%2$d. %3$s %4$d:%5$d</string>

```
try this `<string name="date_time_short">%1$s.%2$s. %3$s %4$s:%5$s</string>`